Devices such as electronic devices, computing systems, portable devices, and handheld devices have software applications such as game applications. Some of these applications are shared—for instance, multiple devices can participate in a game application in a collaborative fashion. The shared features of an application can be referred to as services. Before a device can use a service offered by another device, the participating device (the discoverer) has to discover such a service available on a network. Services are advertised by a remote device (i.e. the advertiser) on the network.
Various discovery techniques are available for electronic devices connected to, or attempting to connect to a network. These discovery techniques typically involve use of a network protocol to determine what devices and/or services are available through a network connection. These discovery techniques are useful for many situations. However, in certain situations, these discovery techniques are not optimal.
Typically, each device in a network is configured to periodically scan and/or advertise a service in the network according to commonly known scanning and advertising schedule, such as, for example, in a 100 millisecond (ms)-800 ms period range. When there are many devices in the network closely located, such a scanning and/or advertising strategy may not be efficient as there may be heavy communications channel congestion, which results in devices taking a long period of time to discover a service of another device and/or to advertise a service. In such a scenario, additional time would need to be spent scanning to ensure reliable service discovery. Spending additional time scanning consumes a larger amount of power, which is a critical resource on a portable electronic device. Further, frequent discovery scanning and advertisement transmission may themselves consume more power, which is important to a portable device. There has been a lack of efficient way to optimize the service discovery and/or advertisement for portable devices.